package com.jy.adscm.dealer.service.impl;

import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.jy.adscm.dealer.bean.DealerInfo;
import com.jy.adscm.dealer.bean.DealerSystemLoginUser;
import com.jy.adscm.dealer.mapper.DealerInfoMapper;
import com.jy.adscm.dealer.mapper.DealerSystemLoginUserMapper;
import com.jy.adscm.dealer.service.DealerInfoService;
import com.jy.adscm.dealer.service.DealerSystemLoginUserService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.jy.adscm.exception.AdscmSystemException;
import com.jy.adscm.security.utils.Token;
import com.jy.adscm.utils.AdscmBaseUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author zyl
 * @since 2019-01-16
 */
@Service
public class DealerSystemLoginUserServiceImpl extends ServiceImpl<DealerSystemLoginUserMapper, DealerSystemLoginUser> implements DealerSystemLoginUserService {
    @Autowired
    DealerInfoService dealerInfoService;
    @Override
    public boolean insertDealerSystemLoginUser(DealerSystemLoginUser dealerSystemLoginUser,Token token) throws AdscmSystemException {
        dealerSystemLoginUser.setCreator(token.getUser().getId().toString());
        dealerSystemLoginUser.setCreateTime(new Date());
        boolean result = super.insert(dealerSystemLoginUser);
        dealerInfoService.insertDealerInfo(dealerSystemLoginUser,token,DealerSystemLoginUser.class,dealerSystemLoginUser.getDid());
        return result;
    }

    @Override
    public boolean deleteDealerSystemLoginUser(Integer id, Token token) throws AdscmSystemException {
        DealerSystemLoginUser dealerSystemLoginUser = super.selectById(id);
        boolean delete = super.deleteById(id);
        dealerInfoService.deleteDealerInfo(dealerSystemLoginUser,token,DealerSystemLoginUser.class,dealerSystemLoginUser.getDid());
        return delete;
    }

    @Override
    public Boolean updateDealerSystemLoginUser(DealerSystemLoginUser dealerSystemLoginUser, Token token) throws AdscmSystemException {
        DealerSystemLoginUser olddealerSystemLoginUser = super.selectById(dealerSystemLoginUser.getId());
        boolean b = super.updateById(dealerSystemLoginUser);
        dealerInfoService.updateDealerInfo(dealerSystemLoginUser,olddealerSystemLoginUser,token,DealerSystemLoginUser.class,dealerSystemLoginUser.getDid());
        return b;
    }

    @Override
    public List<DealerSystemLoginUser> selectDealerSystemLoginUser(Integer did) throws AdscmSystemException {
        Wrapper<DealerSystemLoginUser> wrapper =new EntityWrapper<>();
        wrapper.eq("did",did);
        List<DealerSystemLoginUser> dealerSystemLoginUsers = super.selectList(wrapper);
        return dealerSystemLoginUsers;
    }
}
